E-SPARK: Automated Generation of Provably Correct Code from Formally Verified Designs

نویسندگان

  • Rajiv Murali
  • Andrew Ireland
چکیده

An approach to generating provably correct sequential code from formally developed algorithmic designs is presented. Given an algorithm modelled in the Event-B formalism, we automatically translate the design into the SPARK programming language. Our translation builds upon Abrial’s approach to the development of sequential programs from Event-B models. However, as well as generating code, our approach also automatically generates code level specifications, i.e. SPARK preand post-conditions, along with loop invariants. In terms of the SPARK proof tools, having the loop invariants increases verification automation. A prototype, known as E-SPARK, has been implemented as a plugin for the Rodin Platform (Event-B toolkit), and tested on a range of examples, i.e. searching, sorting and numeric calculations.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Investigation into the Automated Generation of Provably Correct Code from Formally Verified Designs

In this project, Stress Monitor (SM) is presented which is actually a mobile-based stress diary. The topic of Personal Health Monitoring is introduced and an overview of the related literature is given. Traditional stress diaries require much time from the user, they can easily be lost and they are not engaging. Stress Monitor aims to provide users assistance in _lling the diary easier by using...

متن کامل

Tokeneer: Beyond Formal Program Verification

Tokeneer is a small-sized (10 kloc) security system which was formally developed and verified by Praxis at the request of NSA, using SPARK technology. Since its open-source release in 2008, only two problems were found, one by static analysis, one by code review. In this paper, we report on experiments where we systematically applied various static analysis tools (compiler, bug-finder, proof to...

متن کامل

Compiler verification for fun and profit

OF INVITED TALK Formal verification of software or hardware systems — be it by model checking, deductive verification, abstract interpretation, type checking, or any other kind of static analysis — is generally conducted over high-level programming or description languages, quite remote from the actual machine code and circuits that execute in the system. To bridge this particular gap, we all r...

متن کامل

Code Generation for Protocols from CPN models Annotated with Pragmatics

Model-driven engineering (MDE) provides a foundation for automatically generating software based on models. Models allow software designs to be specified focusing on the problem domain and abstracting from the details of underlying implementation platforms. When applied in the context of formal modelling languages, MDE further has the advantage that models are amenable to model checking which a...

متن کامل

Provably Correct Code Generation: A Case Study

Provably correct compilation is an important aspect in development of high assurance software systems. In this paper we present an approach to provably correct compilation based on Horn logical semantics of programming languages and partial evaluation. We also show that continuation semantics can be expressed in the Horn logical framework, and introduce Definite Clause Semantics. We illustrate ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • ECEASST

دوره 53  شماره 

صفحات  -

تاریخ انتشار 2012